/**  
 * All rights Reserved, Designed By Soywer   
 * @Title:  ITjsonController.java   
 * @Package com.demo.controller.itjson   
 * @Description:    TODO(用一句话描述该文件做什么)   
 * @author: Soywer     
 * @date:   2016年7月13日 上午11:06:18   
 * @version V1.0     
 */  
package com.demo.controller.itjson;

import java.io.File;
import java.io.UnsupportedEncodingException;

import org.apache.http.client.fluent.Request;

import com.demo.common.util.StringUtils;
import com.demo.core.tools.MathUtil;
import com.demo.core.tools.PingYinUtil;
import com.jfinal.core.ActionKey;
import com.jfinal.core.Controller;
import com.jfinal.kit.PathKit;

/**   
 * @ClassName:  ITjsonController   
 * @Description:TODO(www.itjson.com网站)   
 * @author: Soywer  
 * @date:   2016年7月13日 上午11:06:18   
 *      
 */ 
public class ITjsonController  extends Controller{
	
	/**json格式化*/
	@ActionKey("/itjson/json")
	public void json() {
		
		render("json.ftl");
	}
	
	/**
	 * ajax请求
	 * json格式化指定url*/
	@ActionKey("/itjson/jsonurl")
	public void jsonurl() {
		String url = getPara("url");
		int status = 200;
		String content = "";
		//使用httpclient会提示logger.error，不影响程序进行，原因是与log4j冲突
		try{
			content = Request.Get(url).execute().returnContent().asString();
		}catch(Exception e){
			status = 500;
			content = e.getMessage();
		}
		setAttr("status", status);
		setAttr("content", content);
		renderJson();
	}
	
	/**Json压缩转义*/
	@ActionKey("/itjson/jsonzip")
	public void jsonzip() {
		render("jsonzip.ftl");
	}
	
	
	/**json高亮*/
	@ActionKey("/itjson/jsonhighlighted")
	public void jsonhighlighted() {
		
		render("jsonhighlighted.ftl");
	}
	
	
	/**json生成Java实体类工具*/
	@ActionKey("/itjson/json2java")
	public void json2java() {
		
		render("json2java.ftl");
	}
	
	/**json在线视图*/
	@ActionKey("/itjson/jsoncheck")
	public void jsoncheck() {
		
		render("jsoncheck.ftl");
	}
	
	/**汉字转拼音
	 * 使用pinyin4j组件
	 * */
	@ActionKey("/itjson/wordspell")
	public void wordspell() throws UnsupportedEncodingException {
		String txt_cn = getPara(0);
		String type = getPara(1);
		String new_txt_cn = "";
		if(StringUtils.isNotBlank(txt_cn)&&StringUtils.isNotBlank(type)){
			//urlDecode处理编码
			txt_cn = java.net.URLDecoder.decode(txt_cn,"utf-8");
			//查询首字母
			if(type.equals("first")){
				new_txt_cn = PingYinUtil.getFirstSpell(txt_cn);
			//查询全部拼音	
			}else if(type.equals("full")){
				new_txt_cn = PingYinUtil.getFullSpell(txt_cn);
			}
			setAttr("txt_cn", txt_cn);
			setAttr("new_txt_cn", new_txt_cn);
		}
		render("wordspell.ftl");
	}
	
	/**简体字和繁体字在线转换器
	 * 使用pinyin4j组件
	 * */
	@ActionKey("/itjson/simpletotra")
	public void simpletotra() {
		
		render("simpletotra.ftl");
	}
	
	
	/**JavaScript/Html在线格式化工具 */
	@ActionKey("/itjson/jsformat")
	public void jsformat() {
		
		render("jsformat.ftl");
	}
	
	/**Css代码在线格式化 */
	@ActionKey("/itjson/cssformat")
	public void cssformat() {
		
		render("cssformat.ftl");
	}
	
	/**Sql语句在线压缩,格式化工具*/
	@ActionKey("/itjson/sqlformat")
	public void sqlformat() {
		
		render("sqlformat.ftl");
	}
	
	
	/**XML在线压缩，格式化工具*/
	@ActionKey("/itjson/xmlformat")
	public void xmlformat() {
		
		render("xmlformat.ftl");
	}
	
	/**test*/
	@ActionKey("/itjson/test")
	public void test() {
		String url = getPara("url");
		String path = PathKit.getWebRootPath() + "//222.json";
		renderFile(path);
	}
	
	
	/**常用浏览器User-Agent大全*/
	@ActionKey("/itjson/useragent")
	public void useragent() {
		
		render("useragent.ftl");
	}
	
	
	/**HTTP Mime-Type对照表*/
	@ActionKey("/itjson/contenttype")
	public void contenttype() {
		
		render("contenttype.ftl");
	}
	
	
	/**HTTP状态码详解*/
	@ActionKey("/itjson/httpcode")
	public void httpcode() {
		
		render("httpcode.ftl");
	}
	
	
	/**Html转义字符表查看工具*/
	@ActionKey("/itjson/escapechar")
	public void escapechar() {
		
		render("escapechar.ftl");
	}
	
	
	/**HTTP请求方法对照表*/
	@ActionKey("/itjson/httprequest")
	public void httprequest() {
		
		render("httprequest.ftl");
	}
	
	
	/**216 Web安全色对照表*/
	@ActionKey("/itjson/websafecolors")
	public void websafecolors() {
		
		render("websafecolors.ftl");
	}
	
	
	/**HTTP,TCP,UDP常见端口查询*/
	@ActionKey("/itjson/portcode")
	public void portcode() {
		
		render("portcode.ftl");
	}
	
	
	/**在线Ascii码对照表*/
	@ActionKey("/itjson/asciilist")
	public void asciilist() {
		
		render("asciilist.ftl");
	}
	
	
	
	/**MD5加密工具
	 * @throws Exception */
	@ActionKey("/itjson/md5")
	public void md5() throws Exception {
		
		String type = getPara(0);
		String txt_md5 = getPara(1);
		if(StringUtils.isNotBlank(type)&&StringUtils.isNotBlank(txt_md5)){
			String result = null;
			//urlDecode处理编码
			txt_md5 = java.net.URLDecoder.decode(txt_md5,"utf-8");
			if(type.equals("l")){
				result = MathUtil.getMD5(txt_md5).toUpperCase();
			} else if(type.equals("s")){
				result = MathUtil.getMD5(txt_md5);
			}
			setAttr("result", result);
			setAttr("txt_md5", txt_md5);
		}
		
		
		render("md5.ftl");
	}	
	
	
	
	/**测网速（speedtest）*/
	@ActionKey("/itjson/speedtest")
	public void speedtest() {
		
		render("speedtest.ftl");
	}
	
	/**PhotoShop在线版*/
	@ActionKey("/itjson/photoshoponline")
	public void photoshoponline() {
		
		render("photoshoponline.ftl");
		
	}
}
